package base;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.GregorianCalendar;

/**
 * Clase que representa una tarea a realizar por un técnico en base a lo indicado en el presupuesto aceptado por el cliente.
 * @author Efren
 * @version 0.0.1
 * @since 03/02/2013
 */
public class Tarea {
    private long idTarea;
    private int[] idEmpleado;
    private ArrayList<Servicio> serviciosPrestados;
    private Estado estado;
    private String dniCliente;
    private int prioridad;
    private GregorianCalendar fechaFinalizado;

    public GregorianCalendar getFechaFinalizado() {
        return fechaFinalizado;
    }

    public void setFechaFinalizado(GregorianCalendar fechaFinalizado) {
        this.fechaFinalizado = fechaFinalizado;
    }
    
    
    public Tarea(){
        this.serviciosPrestados = new ArrayList(0);
    }
    public int getPrioridad() {
        return prioridad;
    }

    public void setPrioridad(int prioridad) {
        this.prioridad = prioridad;
    }
    
    
    public long getIdTarea() {
        return idTarea;
    }
    public void setIdTarea(long idTarea) {
        this.idTarea = idTarea;
    }

    public int[] getIdEmpleado() {
        return idEmpleado;
    }
    public void setDNICliente(String dni){
        this.dniCliente = dni;
    }
    public String getDNICliente(){return this.dniCliente;}
    public void setIdEmpleado(int[] idEmpleado) {
        this.idEmpleado = idEmpleado;
    }
    public boolean addServiciosPrestados(Servicio serv){
        return this.serviciosPrestados.add(serv);
    }
    public boolean removeServiciosPrestados(Servicio serv){
        return this.serviciosPrestados.remove(serv);
    }
    public ArrayList<Servicio> getServiciosPrestados() {
        return serviciosPrestados;
    }

    public void setServiciosPrestados(ArrayList<Servicio> serviciosPrestados) {
        this.serviciosPrestados = serviciosPrestados;
    }

    public Estado getEstado() {
        return estado;
    }

    public void setEstado(Estado estado) {
        this.estado = estado;
    }   
    public void removeServicioPrestado (String nombre){
        for (Servicio temp : serviciosPrestados.toArray(new Servicio[0])){
            if (temp.getNombre().equalsIgnoreCase(nombre)){
                this.serviciosPrestados.remove(temp);
            }
        }
    }
    public void setServiciosPrestados(Servicio[] obtenerPrestados) {
        this.serviciosPrestados.clear();
        this.serviciosPrestados.addAll(Arrays.asList(obtenerPrestados));
    }
}
